package edu.erpan.bl.entities;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import edu.erpan.util.entityManager.DefaultEntity;


/**
 * The persistent class for the producto database table.
 * 
 */
@Entity
@Table(name="producto")
public class Producto extends DefaultEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(unique=true, nullable=false)
	private int idproducto;

	@Column(name="inventario_int")
	private int inventarioInt;

	@Column(nullable=false, length=50)
	private String nombre;

	@Column(name="peso_empaque", precision=10, scale=2)
	private BigDecimal pesoEmpaque;

	@Column(precision=10, scale=2)
	private BigDecimal precio;

	@Column(length=50)
	private String presentacion;

	@Column(name="stock_minimo")
	private int stockMinimo;

	@Column(name="tiempo_fabricacion")
	private int tiempoFabricacion;

	@Column(name="ubicacion_imagen", length=150)
	private String ubicacionImagen;

	@Column(name="vida_util")
	private int vidaUtil;

	//bi-directional many-to-one association to Formulacion
	@OneToMany(mappedBy="producto", fetch=FetchType.EAGER)
	private List<Formulacion> formulaciones;

	//bi-directional many-to-one association to LineaPedido
	@OneToMany(mappedBy="producto", fetch=FetchType.EAGER)
	private List<LineaPedido> lineasPedido;

	//bi-directional many-to-one association to FlujoOperacion
	@OneToMany(mappedBy="producto", fetch=FetchType.EAGER)
	private List<FlujoOperacion> flujoOperacions;

    public Producto() {
    }

	public int getIdproducto() {
		return this.idproducto;
	}

	public void setIdproducto(int idproducto) {
		this.idproducto = idproducto;
	}

	public int getInventarioInt() {
		return this.inventarioInt;
	}

	public void setInventarioInt(int inventarioInt) {
		this.inventarioInt = inventarioInt;
	}

	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public BigDecimal getPesoEmpaque() {
		return this.pesoEmpaque;
	}

	public void setPesoEmpaque(BigDecimal pesoEmpaque) {
		this.pesoEmpaque = pesoEmpaque;
	}

	public BigDecimal getPrecio() {
		return this.precio;
	}

	public void setPrecio(BigDecimal precio) {
		this.precio = precio;
	}

	public String getPresentacion() {
		return this.presentacion;
	}

	public void setPresentacion(String presentacion) {
		this.presentacion = presentacion;
	}

	public int getStockMinimo() {
		return this.stockMinimo;
	}

	public void setStockMinimo(int stockMinimo) {
		this.stockMinimo = stockMinimo;
	}

	public int getTiempoFabricacion() {
		return this.tiempoFabricacion;
	}

	public void setTiempoFabricacion(int tiempoFabricacion) {
		this.tiempoFabricacion = tiempoFabricacion;
	}

	public String getUbicacionImagen() {
		return this.ubicacionImagen;
	}

	public void setUbicacionImagen(String ubicacionImagen) {
		this.ubicacionImagen = ubicacionImagen;
	}

	public int getVidaUtil() {
		return this.vidaUtil;
	}

	public void setVidaUtil(int vidaUtil) {
		this.vidaUtil = vidaUtil;
	}

	public List<Formulacion> getFormulaciones() {
		return this.formulaciones;
	}

	public void setFormulaciones(List<Formulacion> formulaciones) {
		this.formulaciones = formulaciones;
	}
	
	public List<LineaPedido> getLineasPedido() {
		return this.lineasPedido;
	}

	public void setLineasPedido(List<LineaPedido> lineasPedido) {
		this.lineasPedido = lineasPedido;
	}
	
	public List<FlujoOperacion> getFlujoOperacions() {
		return this.flujoOperacions;
	}

	public void setFlujoOperacions(List<FlujoOperacion> flujoOperacions) {
		this.flujoOperacions = flujoOperacions;
	}
	
}